package com.yxhl.zoume.core.specialcar.view;

import com.yxhl.zoume.common.ui.view.BaseView;
import com.yxhl.zoume.data.http.model.specialcar.SpecialCarOrder;
import com.yxhl.zoume.data.http.rest.response.specialcar.SpecialCarPollingResponse;

/**
 * Created by sugarya on 16/4/21.
 */
public interface SpecialCarScheduleMapView extends BaseView {

    /**
     * 网络请求失败时
     *
     * @param resultMessage
     */
    void renderDataOnFailure(String resultMessage);

    /**
     * 网络请求成功时 返回数据
     *
     * @param response
     */
    void renderDataOnSuccess(SpecialCarPollingResponse response);

    /**
     * 设置toolbar信息
     *
     * @param title
     * @param operation
     */
    void setupHeaderStatus(String title, String operation);

    /**
     * 设置行程状态栏信息
     *
     * @param message
     * @param iconVisibility
     */
    void setupScheduleBarStatus(String message, boolean iconVisibility);

    /**
     * 设置司机信息栏信息
     *
     * @param driverInfo
     * @param judgePoint
     * @param isPhoneIconVisible
     */
    void setupDriverInfoStatus(String driverInfo, double judgePoint, boolean isPhoneIconVisible);

    /**
     * 开启行程信息栏动画
     */
    void startEnterAnimatorForScheduleBar();

    /**
     * 开启行程信息栏退出动画
     */
    void startExitAnimatorForScheduleBar();

    /**
     * 开启司机信息栏退出动画
     */
    void startExitAnimatorForDriverInfo();

    /**
     * 更新行程信息里的信息
     *
     * @param fromRideStatus
     * @param toRideStatus
     * @param order
     */
    void updateDataBetweenRideStatus(int fromRideStatus, int toRideStatus, SpecialCarOrder order);

    /**
     * 开启司机信息栏进入动画和开启行程信息栏进入的动画
     *
     * @param runNextAnimator
     */
    void startEnterAnimatorForDriverInfoAndScheduleBar(boolean runNextAnimator);


    /**
     * 显示评价司机界面
     *
     * @param order
     */
    void ShowArrivalDialog(SpecialCarOrder order);

    /**
     * 展示支付对话框
     *
     * @param order
     */
    void showPaymentDialog(SpecialCarOrder order);

    /**
     * ScheduleDialogType.TIME_OUT
     */
    void showTimeOutDialog();

    /**
     * ScheduleDialogType.DISPATCH_FAILURE
     */
    void showSDispatchFailureDialog();

    /**
     * ScheduleDialogType.INVALIDATE_ORDER
     */
    void showInvalidDataDialog();

    /**
     * ScheduleDialogType.DRIVER_CLOSE_ORDER
     */
    void showDriverCloseDialog();
}
